---
title: Инструкция по работе над сайтом
---

1. Содержание
{:toc}

## Обновите репозиторий {#repo-update}

Чтобы получить изменения, сделанные другими разработчиками, их надо скачать и
слить в ветку, в которой вы собираетесь работать. То, что опубликовано на сайте,
должно быть в ветке origin/master, в других ветках origin/* могут находиться
неопубликованные изменения.

Стандартное обновление репозитория представляет из себя скачивание изменений и
слияние origin/master в master.

### Скачайте изменения {#fetch}

![Remote - Fetch from - origin](img/fetch.png)

На этом этапе у вас могут запросить пароль для разблокировки ключа.

### Слейте изменения {#merge}

При слиянии вы должны находиться на той ветке, куда сливаете другую
(если вы находитесь на другой ветке, [переключитесь](#checkout) на
нужную):

![Merge - Local Merge](img/local-merge.png)

Выберите ветку, которую нужно слить в текущую:

![Merge tracking branch origin/master](img/merge-origin-master.png)

Если все хорошо, работайте дальше. В некоторых случаях на этом этапе может
возникнуть конфликт слияния. Он происходит, когда в разных ветках изменена одна
и та же часть какого-то файла. В этом случае необходимо выбрать, какой вариант
использовать, отредактировать файлы соответствующим образом и [создать
коммит](#commit), когда файлы будут выглядеть так, как вы хотите, чтобы они были
объединены. При необходимости, обратитесь за помощью.

## Работайте в правильной ветке {#branches}

Если у вас нет ветки, в которой вы собираетесь работать, создайте ее; если есть
--- переключитесь на нее. Если вы уже на ней, [переходите к
редактированию](#edit).

Если изменения не очень существенные или не относятся к одному
направлению, вы можете использовать персональную ветку.

Не работайте в master. Пусть master будет содержать только то, что
либо уже находится на сайте, либо прямо сейчас будет туда загружено.

### Создание ветки {#create-branch}

![Branch - Create](img/create-branch.png)

В окне введите название ветки. Выберите ветку, на которой новая должна
основываться (если не уверены, выберите master). Проверьте, что стоит флаг
"Checkout After Creation", чтобы сразу переключиться на новую ветку.

![](img/create-branch-dialog.png)

### Переключение на ветку {#checkout}

Если ветка уже существует, но вы находитесь не на ней (текущая ветка
показывается в левом верхнем углу), переключитесь на нужную ветку.

![Branch - Checkout](img/checkout.png)

Выберите ветку, на которую хотите переключиться:

![](img/checkout-dialog.png)

Если вы используете персональную ветку, вам может потребоваться сливать в нее
изменения, сделанные другими людьми или в других ветках. Слияние делается
аналогично тому, [что вы уже делали](#merge), только сливайте не в master, а в
ту ветку, которую вы хотите обновить.

## Редактируйте файлы {#edit}

Все тексты хранятся в папке content. Для добавлении новой новости
создайте файл в папке content/news. Называйте файлы по шаблону
`YYYY-MM-slug.md` где YYYY --- год, MM --- месяц (2 цифры), slug ---
та часть, которая будет в адресе. В slug рекомендую ограничиться
латиницей в нижнем регистре и дефисом. Если очень хочется, можно
использовать латиницу в верхнем регистре, подчеркивание, цифры. Не
используйте пробелы, кириллицу, прочие спецсимволы.

В начале файлов находятся метаданные между двумя строчками `---`. У
всех страниц есть заголовок(`title`), у новостей надо также прописать
`kind: article` и `created_at: YYYY-MM-DD` (замените на реальную дату
публикации).

Например, чтобы добавить новость от 31 декабря 1970 года, создадим
файл `1970-12-important-information.md` подобного содержания:

    ---
    title: Важная новость
    kind: article
    created_at: 1970-12-31
    ---

    Уважаемые клиенты! Хотим вам сообщить, что ...

Смотрите на существующие страницы, как там сделано.

### Компиляция сайта {#compile}

Сервер запускается и завершается автоматически, но чтобы смотреть
сделанные изменения, необходимо компилировать сайт после каждого
редактирования:

![Tools - Compile website](img/compile.png)

Когда сайт скомпилируется, закройте возникшее окно. Посмотреть
изменения можно по адресу <http://localhost:3000>

### Разметка {#markup}

В качестве разметки используется Markdown (если точнее, то kramdown).

Между абзацами оставляйте пустую строку:

    Один абзац

    Второй абзац

Списки тоже делаются просто, в качестве маркера можно использовать
`-`, `+` или `*`:

    - Элемент
    - Еще элемент
    - Третий элемент

Отделяйте списки от текста пустой строкой.

Нумерованные списки:

    1. Первый элемент
    2. Второй элемент
    9. Третий элемент. Цифра не важна, на сайте будет цифра 3.

Ссылки делаются так: в квадратных скобках пишете текст ссылки, а в круглых (они
должны стоять сразу после квадратных) то, куда пользователь попадет, кликнув по
ней:

    [Текст ссылки](http://example.com/)

Отображаться будет так: [Текст ссылки](http://example.com/).

Заголовки делаются так:

    ## Раздел Первый

    ### Статья 1

    #### Пункт 1.1.1

Количество решеток соответствует уровню заголовка. Чем меньше уровень
заголовка, тем он важнее. Заголовок 1 уровня --- название страницы, не
используйте их в тексте. Заголовки 2 уровня --- названия разделов
страницы, 3 уровня --- подразделов и т. д. Всего 6 уровней.

## Закоммитьте изменения {#commit}

Коммит (снимок) --- это сохраненное состояние репозитория со вспомогательной
информацией, помогающей отличить данное состояние от других (время фиксации,
автор, родительский коммит (тот, на котором основывается данный) и т.д.).

Пересканируйте изменения:

![Rescan](img/rescan.png)

Git позволяет разделять изменения на несколько коммитов. Это полезно,
если вы не хотите смешивать никак не связанные друг с другом изменения
в один коммит. Посмотрите свои изменения и решите, какие из них должны
войти в коммит. Если вы хотите зафиксировать все изменения, нажмите
кнопку "Stage Changed", для добавления отдельных файлов нажмите на их
иконку, для кусков файлов или строк используйте контекстное меню
(вызывается правой кнопкой мыши).

![](img/stage.png)

Если вы передумали добавлять что-то, изменения удаляются из области
подготовленных файлов почти так-же: кликните на иконку добавленного
файла, чтобы отменить его изменение или в контекстном меню выберите
"Unstage Hunk/Line From Commit".

Проверьте, что в коммит войдут все нужные изменения и только они
(иногда могут случайно появляться ненужные файлы или изменения). Чтобы
посмотреть различие, кликайте по имени файла.

В поле ввода сообщения кратко опишите изменения. Если хотите описать
подробно, в первой строчке опишите кратко, вторую оставьте пустой, а
дальше пишите подробно.

![проверьте и опишите измениния и нажмите Commit](img/commit.png)

## Отошлите изменения {#push}

На этом этапе вы отправите свои [закоммиченные](#commit) наработки в удаленный
репозиторий, чтобы сделать их доступными другим разработчикам. Это не изменит
сайт для посетителей.

![Push](img/push.png)

В диалоговом окне выберите ветку, в которой вы работали:

![](img/push-dialog.png)

При отсылке изменений у вас могут потребовать пароль.

## Публикация изменений {#publish}

**Внимание!** На момент написания этой части инструкции, у вас нет
возможности самостоятельно публиковать изменения: у вас просто нет в
меню опции "Publish the Website". Здесь описано то, как будет
выглядеть процесс публикации.

Убедитесь, что все изменения закоммичены. Для этого пересканируйте
репозиторий и убедитесь, что изменений, не вошедших в коммит
нет. Посмотрите, в какой ветке вы работали.

![status](img/rescan-no-changes.png)

[Переключитесь](#checkout) на master и [слейте](#merge) туда сначала
origin/master, а потом ту ветку, в которой вы работали.

[Скомпилируйте сайт](#compile) и убедитесь, что все правильно.

[Отправьте](#push) изменения в удаленный репозиторий, на этот раз выбрав ветку
master.

Отправьте скомпилированный сайт на хостинг:

![Tools - Publish the Website](img/publish.png)

При публикации может быть запрошен пароль от ключа либо от аккаунта на
хостинге.

## Дополнительно {#additional}

То, что описано в этом разделе не обязательно вам потребуется, но
лучше, чтобы вы знали, как это делается.

### Просмотр истории {#history}

![Repository - Visualize All Branch History](img/visualize-hist.png)

Откроется окно с историей:

![gitk](img/gitk.png)

В верхней части показаны коммиты с автором и временем их
создания. Зелеными прямоугольниками показаны ветки. При клике по
коммиту внизу отображается подробная информация о нем.

В нижней части можно посмотреть полное сообщение к коммиту и
изменения, вошедшие в него либо весь репозиторий в тот момент.

### Подготовка к работе {#run}

Если вы запустили скрипт на рабочем столе, скрипт делает это за вас. Иначе
следует выполнить следующие шаги, открыв для этого 2 окна терминала:

1.  Запустить сервер для просмотра сделанных изменений:

        cd ~/barracuda-nanoc/
        nanoc view

2.  Запустить графический интерфейс git gui, так как инструкция рассчитана на
работу через него

        cd ~/barracuda-nanoc/
        git gui

### Обновление этой инструкции {#instruction-update}

Эту инструкцию проще всего обновлять через терминал. Откройте его из
системного меню и введите туда команды:

    cd instruction-nanoc
    git pull
    nanoc

После чего [перезагрузите](index.html) эту страницу.
